﻿using System;

public static class Program {
	public static void Main() {
		Array a;

		// Create a 1-dim, 0-based array, with no elements in it
		a = new String[0];
		Console.WriteLine(a.GetType());	// System.String[]

		// Create a 1-dim, 0-based array, with no elements in it
		a = Array.CreateInstance(typeof(String), new Int32[] { 0 }, new Int32[] { 0 });
		Console.WriteLine(a.GetType());	// System.String[]

		// Create a 1-dim, 1-based array, with no elements in it
		a = Array.CreateInstance(typeof(String), new Int32[] { 0 }, new Int32[] { 1 });
		Console.WriteLine(a.GetType());	// System.String[*]  <-- INTERESTING!
		
		Console.WriteLine();

		// Create a 2-dim, 0-based array, with no elements in it
		a = new String[0, 0];
		Console.WriteLine(a.GetType());	// System.String[,]

		// Create a 2-dim, 0-based array, with no elements in it
		a = Array.CreateInstance(typeof(String), new Int32[] { 0, 0 }, new Int32[] { 0, 0 });
		Console.WriteLine(a.GetType());	// System.String[,]

		// Create a 2-dim, 1-based array, with no elements in it
		a = Array.CreateInstance(typeof(String), new Int32[] { 0, 0 }, new Int32[] { 1, 1 });
		Console.WriteLine(a.GetType());	// System.String[,]
	}
}
